package com.tengju.settlement.domain.model.depository;

import com.tengju.settlement.domain.model.account.UserIdCode;

import java.util.List;

public interface DepositoryAccountRepository {

    List<DepositoryAccount> getByLicenseStatus(License license, List<AccountStatus> status, DepositoryChannel depositoryChannel);

    DepositoryAccount getByIdCodeLicenseStatus(UserIdCode idCode, License license, AccountStatus status, DepositoryChannel depositoryChannel);

    List<DepositoryAccount> getByIdCodeStatus(UserIdCode idCode, List<AccountStatus> status, DepositoryChannel depositoryChannel);

    DepositoryAccount getByIdCodeLicense(UserIdCode idCode, License license, DepositoryChannel depositoryChannel);


    Integer countByIdCodeStatus(UserIdCode idCode, List<AccountStatus> status, DepositoryChannel depositoryChannel);

    DepositoryAccount getByDepAccountId(DepositoryAccountId depositoryAccountId);


    List<DepositoryAccount>  getByIdCodesStatusNormal(List<UserIdCode> idCode, DepositoryChannel depositoryChannel);

    DepositoryAccount getByIdCodeStatusNormal(UserIdCode idCode, DepositoryChannel depositoryChannel);

    DepositoryAccount getByIdCodeStatusAuthing(UserIdCode idCode, DepositoryChannel depositoryChannel);


    void updateStatus(DepositoryAccount account);

    DepositoryAccount save(DepositoryAccount account);





}
